package com.lightboat.system.service;

import com.lightboat.common.core.domain.bo.CommonCargoInfoBo;
import com.lightboat.common.core.domain.bo.LogisticsOrderBo;
import com.lightboat.common.core.domain.bo.LogisticsPrintBo;
import com.lightboat.common.core.domain.bo.TraceSubscribeBo;
import com.lightboat.system.domain.CrmOrder;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface IJdLogisticsService {
    /**
     * 京东物流下单
     *
     * @param crmOrder
     * @param cargoInfoBo
     * @return
     */
    LogisticsOrderBo orderCreate(CrmOrder crmOrder, CommonCargoInfoBo cargoInfoBo);


    /**
     * 京东物流取消
     * @param crmOrder
     * @return
     */
    LogisticsOrderBo orderCancel(CrmOrder crmOrder);

    /**
     * 获取订单面单模板
     *
     * @return
     * @throws IOException
     */
    Map<String, Object> getOrderPrintTemplates();

    /**
     * 订单面单打印
     * @param logisticsPrint
     * @return
     */
    List<String> orderPrint(LogisticsPrintBo logisticsPrint);

    Object traceSubscribe(CrmOrder crmOrder);

    /**
     * 订单轨迹订阅
     * @param traceSubscribe
     */
    Object traceSubscribe(TraceSubscribeBo traceSubscribe);

    /**
     * 物流拦截订阅
     * @param interceptData
     * @return
     */
    Integer interceptSub(String interceptData);

    /**
     * 京东物流轨迹订阅
     * @param traceMsg
     * @return
     */
    Integer jdTraceMsgSub(String traceMsg);
}
